Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
In some cases, software applications may be used to show the execution history of a computer system. For instance, execution visualizers may be used to visually show a timeline of how a computer system's processing resources have been used. The timeline may show execution dynamics for different applications, for different central processing unit (CPU) threads, for individual tasks or for other processes. These execution visualizers are configured to display execution data at different zoom levels or levels of specificity. Execution data can come, for example, from a previously collected trace of activities that occurred during execution of a software application, from an ongoing live session, etc. At higher zoom levels (i.e. zoomed in), an increased number of details are shown. At lower zoom levels (i.e. zoomed out), details are aggregated together, and fewer are shown. In some cases, data for each zoom level may be pre-calculated. However, pre-calculation for each zoom level requires a separate pass over the input execution data.